<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>NPointCrossover (Apache Commons Math 3.6.1 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="NPointCrossover (Apache Commons Math 3.6.1 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NPointCrossover.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/genetics/MutationPolicy.html" title="interface in org.apache.commons.math3.genetics"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/genetics/OnePointCrossover.html" title="class in org.apache.commons.math3.genetics"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/genetics/NPointCrossover.html" target="_top">Frames</a></li>
<li><a href="NPointCrossover.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.genetics</div>
<h2 title="Class NPointCrossover" class="title">Class NPointCrossover&lt;T&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.genetics.NPointCrossover&lt;T&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>T</code> - generic type of the <a href="../../../../../org/apache/commons/math3/genetics/AbstractListChromosome.html" title="class in org.apache.commons.math3.genetics"><code>AbstractListChromosome</code></a>s for crossover</dd></dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/apache/commons/math3/genetics/CrossoverPolicy.html" title="interface in org.apache.commons.math3.genetics">CrossoverPolicy</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">NPointCrossover&lt;T&gt;</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../org/apache/commons/math3/genetics/CrossoverPolicy.html" title="interface in org.apache.commons.math3.genetics">CrossoverPolicy</a></pre>
<div class="block">N-point crossover policy. For each iteration a random crossover point is
 selected and the first part from each parent is copied to the corresponding
 child, and the second parts are copied crosswise.

 Example (2-point crossover):
 <pre>
 -C- denotes a crossover point
           -C-       -C-                         -C-        -C-
 p1 = (1 0  | 1 0 0 1 | 0 1 1)    X    p2 = (0 1  | 1 0 1 0  | 1 1 1)
      \----/ \-------/ \-----/              \----/ \--------/ \-----/
        ||      (*)       ||                  ||      (**)       ||
        VV      (**)      VV                  VV      (*)        VV
      /----\ /--------\ /-----\             /----\ /--------\ /-----\
 c1 = (1 0  | 1 0 1 0  | 0 1 1)    X   c2 = (0 1  | 1 0 0 1  | 0 1 1)
 </pre>

 This policy works only on <a href="../../../../../org/apache/commons/math3/genetics/AbstractListChromosome.html" title="class in org.apache.commons.math3.genetics"><code>AbstractListChromosome</code></a>, and therefore it
 is parameterized by T. Moreover, the chromosomes must have same lengths.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>3.1</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/genetics/NPointCrossover.html#NPointCrossover(int)">NPointCrossover</a></strong>(int&nbsp;crossoverPoints)</code>
<div class="block">Creates a new <a href="../../../../../org/apache/commons/math3/genetics/NPointCrossover.html" title="class in org.apache.commons.math3.genetics"><code>NPointCrossover</code></a> policy using the given number of points.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/genetics/ChromosomePair.html" title="class in org.apache.commons.math3.genetics">ChromosomePair</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/genetics/NPointCrossover.html#crossover(org.apache.commons.math3.genetics.Chromosome,%20org.apache.commons.math3.genetics.Chromosome)">crossover</a></strong>(<a href="../../../../../org/apache/commons/math3/genetics/Chromosome.html" title="class in org.apache.commons.math3.genetics">Chromosome</a>&nbsp;first,
         <a href="../../../../../org/apache/commons/math3/genetics/Chromosome.html" title="class in org.apache.commons.math3.genetics">Chromosome</a>&nbsp;second)</code>
<div class="block">Performs a N-point crossover.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/genetics/NPointCrossover.html#getCrossoverPoints()">getCrossoverPoints</a></strong>()</code>
<div class="block">Returns the number of crossover points used by this <a href="../../../../../org/apache/commons/math3/genetics/CrossoverPolicy.html" title="interface in org.apache.commons.math3.genetics"><code>CrossoverPolicy</code></a>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="NPointCrossover(int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>NPointCrossover</h4>
<pre>public&nbsp;NPointCrossover(int&nbsp;crossoverPoints)
                throws <a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></pre>
<div class="block">Creates a new <a href="../../../../../org/apache/commons/math3/genetics/NPointCrossover.html" title="class in org.apache.commons.math3.genetics"><code>NPointCrossover</code></a> policy using the given number of points.
 <p>
 <b>Note</b>: the number of crossover points must be &lt; <code>chromosome length - 1</code>.
 This condition can only be checked at runtime, as the chromosome length is not known in advance.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>crossoverPoints</code> - the number of crossover points</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if the number of <code>crossoverPoints</code> is not strictly positive</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getCrossoverPoints()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCrossoverPoints</h4>
<pre>public&nbsp;int&nbsp;getCrossoverPoints()</pre>
<div class="block">Returns the number of crossover points used by this <a href="../../../../../org/apache/commons/math3/genetics/CrossoverPolicy.html" title="interface in org.apache.commons.math3.genetics"><code>CrossoverPolicy</code></a>.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>the number of crossover points</dd></dl>
</li>
</ul>
<a name="crossover(org.apache.commons.math3.genetics.Chromosome, org.apache.commons.math3.genetics.Chromosome)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>crossover</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/genetics/ChromosomePair.html" title="class in org.apache.commons.math3.genetics">ChromosomePair</a>&nbsp;crossover(<a href="../../../../../org/apache/commons/math3/genetics/Chromosome.html" title="class in org.apache.commons.math3.genetics">Chromosome</a>&nbsp;first,
                       <a href="../../../../../org/apache/commons/math3/genetics/Chromosome.html" title="class in org.apache.commons.math3.genetics">Chromosome</a>&nbsp;second)
                         throws <a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
                                <a href="../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></pre>
<div class="block">Performs a N-point crossover. N random crossover points are selected and are used
 to divide the parent chromosomes into segments. The segments are copied in alternate
 order from the two parents to the corresponding child chromosomes.

 Example (2-point crossover):
 <pre>
 -C- denotes a crossover point
           -C-       -C-                         -C-        -C-
 p1 = (1 0  | 1 0 0 1 | 0 1 1)    X    p2 = (0 1  | 1 0 1 0  | 1 1 1)
      \----/ \-------/ \-----/              \----/ \--------/ \-----/
        ||      (*)       ||                  ||      (**)       ||
        VV      (**)      VV                  VV      (*)        VV
      /----\ /--------\ /-----\             /----\ /--------\ /-----\
 c1 = (1 0  | 1 0 1 0  | 0 1 1)    X   c2 = (0 1  | 1 0 0 1  | 0 1 1)
 </pre></div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/genetics/CrossoverPolicy.html#crossover(org.apache.commons.math3.genetics.Chromosome,%20org.apache.commons.math3.genetics.Chromosome)">crossover</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/commons/math3/genetics/CrossoverPolicy.html" title="interface in org.apache.commons.math3.genetics">CrossoverPolicy</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>first</code> - first parent (p1)</dd><dd><code>second</code> - second parent (p2)</dd>
<dt><span class="strong">Returns:</span></dt><dd>pair of two children (c1,c2)</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathIllegalArgumentException.html" title="class in org.apache.commons.math3.exception">MathIllegalArgumentException</a></code> - iff one of the chromosomes is
   not an instance of <a href="../../../../../org/apache/commons/math3/genetics/AbstractListChromosome.html" title="class in org.apache.commons.math3.genetics"><code>AbstractListChromosome</code></a></dd>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the length of the two chromosomes is different</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/NPointCrossover.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/genetics/MutationPolicy.html" title="interface in org.apache.commons.math3.genetics"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/genetics/OnePointCrossover.html" title="class in org.apache.commons.math3.genetics"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/genetics/NPointCrossover.html" target="_top">Frames</a></li>
<li><a href="NPointCrossover.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
